Re: darwin pgsql patches
| От | Peter Bierman |
|---|---|
| Тема | Re: darwin pgsql patches |
| Дата | |
| Msg-id | v03130301b64b293e25de@[17.202.21.230] обсуждение исходный текст |
| Ответ на | Re: darwin pgsql patches (Peter Eisentraut <peter_e@gmx.net>) |
| Ответы |
Re: darwin pgsql patches
|
| Список | pgsql-patches |
At 11:05 AM -0500 11/29/00, Tom Lane wrote:
>Peter Bierman <bierman@apple.com> writes:
>> /* placeholder file for a self-test program I plan to write. pmb-001128 */
>
>I think there is a semaphore-testing program in the QNX port; have you
>looked at that?
Yes, and it allowed the user to manually toggle semaphores, but I want to write something that will do more of a full
regressionsweep and produce a pass or fail result. (Which might be unnecessary if latest darwin kernels actually
implement<sys/sem.h> completely, see below.)
>> +#define darwin
>
>Could we make this symbol __darwin__, or something else a little less
>likely to conflict with plain names in the code? (For that matter,
>doesn't the compiler predefine some symbol along this line?)
Sure.
The only symbols darwin gcc defines are:
#define __MACH__ 1
#define __NATURAL_ALIGNMENT__ 1
#define __APPLE__ 1
#define __GNUC_MINOR__ 95
#define __ppc__ 1
#define __GNUC__ 2
#define __STDC__ 1
#define __DYNAMIC__ 1
#define __APPLE_CC__ 912
#define __BIG_ENDIAN__ 1
So defining one in PG via configure seems best.
At 5:30 PM +0100 11/29/00, Peter Eisentraut wrote:
>Peter Bierman writes:
>
>> Here are patches to CVS top of tree that allow darwin to completely
>> build and install. Unfortunately, the sem...() shim does not function
>> correctly yet, so it's not stable enough to use.
>
>We've been through this before. Newer Darwin kernels have semaphore
>support, which means that you'll at least have to compensate for that. I
>believe we agreed that semaphore support for older kernels would be
>available as a patch.
Can you point me to an archive of that discussion? I'd love for it to be true.
I did the patch on a Mac OS X Public Beta machine, and gave it a quick test on the most recent Mac OS X internal build,
butI didn't try it without the shim on the latest build. I'll try that.
>> +//#include <sys/sem.h>
>
>No C++ comments.
Good to know.
>> -void *pg_dlopen(const char *filename)
>> +void *pg_dlopen(char *filename)
>
>Why?
All of the other ports do not use the const. The code is called from the main sourcebase assuming it's not const. I
chosethe quicker fix of having the darwin code match the rest of the source instead of trying to push the more correct
constdefinition back into the rest of the code.
>> +#if defined(darwin) && defined(__ppc__)
>> +static void
>> +tas_dummy()
>> +{
>> + __asm__(" \n\
>
>Here the question was why the existing powerpc code doesn't work. There
>are only syntax differences. Any idea?
I think it has more to do with Apple's forked gcc than anything else. I don't have a LinuxPPC machine to check if
addingthe rX syntax there would continue to work. Also, the darwin gcc doesn't create the _tas symbol automatically, so
ithas to be declared in the asm routine.
>> +#if defined(darwin)
>> +#include "../backend/port/darwin/sem.h"
>> +#endif
>
>This doesn't work. There's no guarantee that the source tree is the same
>as the build tree.
Fair enough, what would be the right way to include this file then?
>> 4c6,7
>> < CFLAGS=-O0
>> ---
>> > #CFLAGS=-O2
>
>No commented out things. Either you take -02 or -O0 or you set CFLAGS to
>something else, but it has to be set to something.
Ok. I don't see any reason why -O2 shouldn't work, So I'll just pull the line.
Thanks for the feedback! I'm doing the port for personal reasons, but I think it will be a great feature if Mac OS X GM
workswith PG.
-pmb
--
bierman@apple.com
"4 out of 5 people with the wrong hardware want to run Mac OS X because..."
http://www.newertech.com/oscompatibility/osxinfo.html
В списке pgsql-patches по дате отправления: